#!/bin/bash
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Clean scratch directory if requested.
if [ "$1" = "--clean" ]; then
    shift
    echo "Cleaning scratch directory..."
    rm -rf /workspace/scratch/*
fi

echo "Building ChromeOS dependencies..."
if ! make -j $(nproc) -C ci/build_environment \
    >/workspace/logs/build_environment.log 2>&1; then
    echo "Failed to build ChromeOS dependencies"
    cat /workspace/logs/build_environment.log
    # Drop into an interactive shell for debugging.
    if [[ $# -eq 0 ]]; then
        /bin/bash
    fi
    exit 1
fi

if [ "$1" = "--vm" ]; then
    shift
    echo "Starting testing vm..."
    (cd /workspace/vm && screen -Sdm vm ./start_vm)
    export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER="\
        /workspace/src/platform/crosvm/ci/vm_tools/exec_binary_in_vm"

    if [[ $# -eq 0 ]]; then
        test_target="Virtual Machine (See 'screen -r vm' or 'ssh vm')"
    else
        test_target="Virtual Machine"
    fi
    export CROSVM_USE_VM=1
else
    test_target="Native execution"
fi

echo ""
echo "crosvm builder is ready:"
echo "  Cargo version: $(cargo --version)"
echo "  Test target: ${test_target}"
echo ""

# Run user provided command or interactive shell
if [[ $# -eq 0 ]]; then
    /bin/bash
else
    echo "$ $@"
    /bin/bash -c "$@"
fi
